<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of login
 *
 * @author Rodrigo
 */
session_start();

class Login {

    private $usuario;
    private $contas = array();
    // Guarda uma instância da classe
    private static $instance;

    private function __construct() {
        if (filter_input(INPUT_POST, 'formLogout')) {
            $this->logout();
        }
        if (isset($_SESSION['usuario'])) {
            if (is_a($_SESSION['usuario'], 'Usuario')) {
                $this->fazLogin($_SESSION['usuario']->getEmail(), $_SESSION['usuario']->getSenha());
            } else {
                echo $_SESSION['usuario'] . "Aqui";
            }
        }
        if(isset($_SESSION['contasUsuario'])){
            $this->contas = $_SESSION['contasUsuario'];
        }
        if (filter_input(INPUT_POST, 'formLogin')) {
            $this->fazLogin(filter_input(INPUT_POST, 'edtEmail', FILTER_VALIDATE_EMAIL), filter_input(INPUT_POST, 'edtSenha'));
        }
    }

    // O método singleton 
    public static function singleton() {
        if (!isset(self::$instance)) {
            $c = __CLASS__;
            self::$instance = new $c;
        }

        return self::$instance;
    }

    public function getUsuario() {
        return $this->usuario;
    }

    public function estaConectado() {
        if (is_a($this->getUsuario(), 'Usuario')) {
            return true;
        }
        return false;
    }

    public function fazLogin($email, $senha) {
        if ($email == "rodrigo@gmail.com" and $senha == "123") {
            $this->usuario = new Adminstrador();
            $this->usuario->setCodigo(1);
            $this->usuario->setCpf("420.858.778-42");
            $this->usuario->setEmail("rodrigo@gmail.com");
            $this->usuario->setSenha("123");
            $_SESSION['usuario'] = $this->usuario;
            return true;
        }else{
            foreach ($this->contas as $usuario){
                if ($email == $usuario->getEmail() and $senha == $usuario->getSenha()) {
                    $_SESSION['usuario'] = $usuario;
                    $this->usuario = $usuario;
                }
            }
        }

        return false;
    }

    public function logout() {
        unset($_SESSION['usuario']);
        $this->usuario = null;
    }

    public function cadastraUsuario(Usuario $usuario) {
        if (isset($_SESSION['contasUsuario'])) {
            $this->contas = $_SESSION['contasUsuario'];
        }
        $this->contas[] = $usuario;
        $_SESSION['contasUsuario'] = $this->contas;
        //print_r($this->contas);
    }

}

?>
